#include<stdio.h>
#define N 10
int a[N][N],b[N][N];//矩阵a，b
int ans[N][N];
int a_row,a_col,b_row,b_col;//分别为a，b矩阵的行数，列数,保证a_col=b_row

void multiply();//计算ans=a*b

int main()
{
    scanf("%d%d%d%d",&a_row,&a_col,&b_row,&b_col);
    for(int i=1;i<=a_row;++i) //注意从1开始读入
        for(int j=1;j<=a_col;++j)
            scanf("%d",&a[i][j]);
    for(int i=1;i<=b_row;++i)
        for(int j=1;j<=b_col;++j)
            scanf("%d",&b[i][j]);
    multiply();
    for(int i=1;i<=a_row;++i, puts(""))
        for(int j=1;j<=b_col;++j)
            printf("%d ",ans[i][j]);
}
/* 请在这里填写答案 */
void multiply()
{
    for(int i=1;i<=a_row;++i)
        for(int j=1;j<=b_col;++j)
            for(int k=1;k<=b_row;++k)
                ans[i][j]+=a[i][k]*b[k][j];
}
